using System;
using System.Windows.Forms;

namespace Microsoft.WowAddonStudio.FrameXml.Editor.ToolWindows
{
	/// <summary>
	/// System.EventArgs is the base class for classes containing event data.
	/// </summary>
	public class FrameControlStateChangedEventArgs : EventArgs
	{
		/// <summary>
		/// Initializes a new instance of the <see cref="FrameControlStateChangedEventArgs"/> class.
		/// </summary>
		/// <param name="controlName">Name of the control.</param>
		/// <param name="hiddenState">if set to <c>true</c> [state].</param>
		/// <param name="selectedNode"></param>
		public FrameControlStateChangedEventArgs(string controlName, bool hiddenState, TreeNode selectedNode)
		{
			ControlName = controlName;
			State = hiddenState;
		    SelectedNode = selectedNode;
		}

		/// <summary>
		/// Gets or sets a value indicating whether this <see cref="FrameControlStateChangedEventArgs"/> is cancel.
		/// </summary>
		/// <value><c>true</c> if cancel; otherwise, <c>false</c>.</value>
		public bool Cancel { get; set; }

		/// <summary>
		/// Gets or sets the name of the control.
		/// </summary>
		/// <value>The name of the control.</value>
		public String ControlName{get; set;}

		/// <summary>
		/// Gets or sets a value indicating whether this <see cref="FrameControlStateChangedEventArgs"/> is state.
		/// </summary>
		/// <value><c>true</c> if state; otherwise, <c>false</c>.</value>
		public bool State{get; set;}

        /// <summary>
        /// Gets or sets the selected node.
        /// </summary>
        /// <value>The selected node.</value>
        public TreeNode SelectedNode { get; set; }
	}
}